package com.ting.test.algorithms.递归和动态规划.从左往右的模型;

/**
 * 给定一个字符串str，给定一个字符串类型的数组arr，出现的字符都是小写英文
 * arr每一个字符串，代表一张贴纸，你可以把单个字符剪开使用，目的是拼出str来
 * 返回需要至少多少张贴纸可以完成这个任务。
 * 例子：str= "babac"，arr = {"ba","c","abcd"}
 * ba + ba + c  3  abcd + abcd 2  abcd+ba 2
 * 所以返回2
 */
public class 字符串剪切拼接问题 {
    public static void main(String[] args) {
        String aim = "babac";
        String[] arr = new String[]{"ba", "c", "abcd"};

        int count = func(arr, aim);
    }

    private static int func(String[] arr, String aim) {
        char[] chars = aim.toCharArray();
        int[] aimarr = new int[26];
        ;
        for (char charss : chars) {
            int index = charss - 'a';
            aimarr[index] += 1;
        }
//        process();
        return 0;
    }

    /**
     * 该方法的代表的含义是 当下标位于字符串aim 的index位置时,最少还需要多少个字符串能够拼完
     *
     * @param arr
     * @param index
     * @param aim
     * @return
     */
    private static int process(String[] arr, int index, String aim) {
        if (index == aim.length()) {
            //当index拼到最后时，说明已经完成了，返回
        }
        return 0;


    }
}
